2023/12/231116字符

net 模块

客户端请求

const net = require('net');

const socket = net.createConnection({
    host: 'bozai.tech',
    port: '80'
}, () => {
    console.log('连接成功');
});

socket.on('data', chunk => {
    console.log(chunk.toString('utf-8'));
});
socket.write(`GET / HTTP/1.1
Host: bozai.tech
Connection: keep-alive

`);

TCP 可以传任何信息,只是在服务器不认识的情况下不会回应信息

创建服务器

const net = require('net');

const server = net.createServer();
server.listen(80);

server.on('listening', () => {
    console.log('服务已启动');
});
server.on('connection', socket => {
    console.log('有访客访问');  // 这里会打印两次,第一次为测试,第二次为请求

    socket.on('data', chunk => {
        console.log(chunk.toString('utf-8'));
        
        socket.write(`HTTP/1.1 200 OK
Content-Type: text/plain

<h1>Hello</h1>`);
        socket.end();  // 主动挂断
    });

    socket.on('end', () => {
        console.log('连接关闭')
    });
});